1. Technical Field
The present invention relates generally to software tools used to model the behavior of complex physical systems and more particularly to a method for generating agent schedules for a telephone call center operation based on the "skill" profiles of the agent population.
2. Description of the Related Art
A "call center" is an organization of people, telecommunications equipment and management software, with a mission of efficiently handling telephone-based customer contact. A typical call center must balance competing goals. Customers should experience high quality and consistent service as measured, for example, by how long the customer's call must wait in queue before being answered. At the same time, this service should be provided to make efficient use of call center resources.
"Workforce management" systems provide important tools for meeting the goals of the call center. These systems generate forecasts of call volumes and call handling times based on historical data to determine how much staff will be needed at different times of the day and week. The systems then create schedules that match the staffing to anticipated needs.
Calls that arrive at a call center generally are classified into "call types" based on the dialed number and possibly other information such as calling number or caller responses to prompts from the network. The call center is typically served by an automatic call distributor (ACD), which identifies the call type of each incoming call and either delivers or queues it. Each call type may have a separate first-in-first-out queue in the ACD. In most existing call centers, the agents answering calls are organized into one or more "teams," with each team having primary responsibility of the calls in one or more queues. This paradigm is sometimes referred to as "queue/team."
In the queue/team model, scheduling for each team can be done independently. Suppose, for example, that the call center handles calls for sales, service, and billing, and that each of these call types is served by a separate team. The schedule for sales agents will depend on the forecast for sales call volume and on various constraints and preferences applicable to the agents being scheduled, but this schedule is not affected by the call volume forecast for service or billing. Further, within the sales team, agents can be considered interchangeable from a call handling viewpoint. Thus, within a team, schedule start times, break times and the like, may be traded freely among agents in the team to satisfy agent preferences without affecting scheduled call coverage.
It is known in the prior art to provide ACD systems that depart from the queue/team model described above. Calls are still categorized into call types. In place of queues for the call types, however, queues assoicated with "skills" are provided. The ACD's call distribution logic for the call type determines which queue or queues a call will occupy at various times before it is answered. Agents are not organized into teams with exclusive responsibility for specific queues. Instead, each agent has one or more identified "skills" corresponding to the skills-based queues. Thus, both a given call and a given agent may be connected to multiple queues at the same time. Agent skills designations may be further qualified, for example, as "primary" or "secondary" skills, or with some other designation of skill priority or degree of skill attainment. The ACD call distribution logic may take the skill priority levels into account in its call distribution logic.
In a queue/team environment, when a new call arrived, the ACD determined the call type and essentially asked "Are there any agents available in the team that serves this call type?" If the answer were yes, the team member who had been available the longest would be selected to handle the new call. If the answer were no, the call would be queued, waiting for a team member to free up. Similarly, when an agent became available, the agent would get the longest-waiting call on any of the queues served by the agent's team.
In a skills-based routing environment, on the contrary, the "matching" of calls to agents by the ACD becomes more sophisticated and thus complicated. Agents who have more than one skill no longer "belong" to a well-defined team that handles a restricted set of calls. Instead, the skills definitions form "implicit" teams that overlap in complex ways. If, for example, a call center has 10 skills defined, then agents could in principle have any of 1024 possible combinations (2.sup.10) of those skills. Each skill combination could be eligible to handle a different subset of the incoming calls, and the eligible subset might vary with time of day, number of calls in queue, or other factors used by the ACD in its call routing decisions.
Schedule of agents in a skills-based environment is thus a much more difficult problem than it is in a queue/team environment. In a skills-based environment, call types cannot be considered in isolation. Thus, for example, a heavy volume of Service calls might place higher demands on multi-skilled agents, causing an unforeseen shortage of coverage for Billing calls. Further, agents with different skills cannot be considered interchangeable for call handling. Thus, trading lunch times between a Sales-only agent and a multi-skill agent might lead to over-staffing Sales at noon while under-staffing Service at 1:00 p.m. This would lead to undesirable results. Moreover, with respect to the needs of a particular call type, a multi-skilled agent might provide no help over a given span of time, might be 100% available for calls of that type, or might be available part of the time and handling other call types for another part of time.
All agents having a particular combination of skills may be deemed a "skill group." The central problem of skills-based scheduling is then finding a way to predict what fraction of scheduled agents from each skill group will be available to each call type during each time interval being scheduled. If these fractions are known, then the effect of different agent schedules can be generated. Unfortunately, no satisfactory method has been found to calculate the skill group availability fractions directly. These functions depend on the relative and absolute call volumes in each call type, on the particulars of the skills-based call distribution algorithms in the ACD, and on the skills profiles of the total scheduled agent population. Particularly as ACD skills-based routing algorithms themselves evolve and become more sophisticated, the factors affecting skill group availability are too complex for direct analysis.
Thus, there is a need to provide a mechanism to facilitate the production of high-quality schedules to make it easier to manage call centers that use skills-based routing in their ACDs. The present invention solves this important problem.